package com.ocom.payconfig.client;

import com.alibaba.fastjson.JSONObject;
import com.ocom.common.constant.HumanServiceUrl;
import com.ocom.common.constant.WxServiceUrl;
import com.ocom.common.dto.Department;
import com.ocom.common.dto.GetMngUserFormDto;
import com.ocom.common.request.human.UpdateUserFaceVo;
import com.ocom.common.resp.Result;
import com.ocom.common.vo.PersonVo;
import com.ocom.common.vo.human.UserListVo;
import com.ocom.common.vo.webapi.ExcelAddPersonVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Map;


@FeignClient(value = "human")
public interface HumanClientService {

    /**修改人员信息*/
    @PostMapping(HumanServiceUrl.URL_PersonnelUpdatePerson)
    public Result UpdatePerson(@RequestBody PersonVo personVo);


    /**
     * 更改人员人脸图片（/updateUserFace）
     * */
    @PostMapping(HumanServiceUrl.URL_updateUserFace)
    Result  updateUserFace(@Validated @RequestBody UpdateUserFaceVo updateUserFaceVo);


    /**
     * 获取学生列表  personnel/getStudentInfo
     * */
    @PostMapping(HumanServiceUrl.URL_PersonnelGetStudentInfo)
    Result PersonnelGetStudentInfo(@RequestBody Map<String,Object> map);

    //获取部门id（department/getDeptIds）
    @PostMapping(HumanServiceUrl.URL_DepartmentGetDeptIds)
    public Result getDeptIds(@RequestBody Department department);

    /**
     * 获取人员列表personnel/getPersonInfo
     * */
    @PostMapping(HumanServiceUrl.URL_PersonnelGetPersonInfo)
    public Result PersonnelGetPersonInfo(@RequestBody Map<String,Object> map);


    @PostMapping(WxServiceUrl.URL_modifyPhoto)
    public Result modifyPhoto(@RequestBody PersonVo personVo);


    /**
     * 导入人员信息（importUserInfo）
     * */
    @PostMapping(HumanServiceUrl.URL_ImportUserInfo)
    public Result ImportUserInfo(@RequestBody ExcelAddPersonVo excelAddPersonVo);



    // 人员列表查询（getPersonnelList）
    @PostMapping(HumanServiceUrl.URL_GetPersonnelList)
    public Result GetPersonnelList(@RequestBody UserListVo userListVo);

    //管理员导出配置
    @PostMapping(HumanServiceUrl.URL_GetMngUserForm)
    public Result getMngUserFormSelected(@RequestBody GetMngUserFormDto dto);


    @PostMapping(HumanServiceUrl.URL_GetMngUserInfo)
    public Result getMngUserInfo(@RequestBody JSONObject jsonObject);


    @PostMapping(HumanServiceUrl.URL_PersonnelUpdatePersonNotCheckPhone)
    public Result updatePersonNotCheckPhone(@RequestBody PersonVo personVo) ;

}


